package org.road0329.tools.proto_parse_tool.ems.dataobject;

import com.alibaba.fastjson.annotation.JSONField;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 端云NB-IoT物联网水表协议 上报数据项
 */
public class DyIotUpData {
    private String meterNo;
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date firstDataTime; //首条数据采集时间
    private Short interval; //采集间隔
    private List<BigDecimal> cumulantList; //累计量
    private BigDecimal currentCumulant; //当前累计量
    private BigDecimal instantFlow; //瞬时流量
    private short sensorSignalStrengthA;// 传感器信号强度A
    private short sensorSignalStrengthB;// 传感器信号强度B
    private short temperature;
    private float voltage; //电池电压
    private short baseCsq; //信号指示是指基站信号的 CSQ 值
    private short rsrp; //信号强度是指 NB 网络信号的强度 RSRP 值
    private short rsrq; //信号质量是指 NB 网络信号接收的质量 RSRQ 值
    private short snr; //信噪比是指 NB 网络信号与噪声的比例值 SNR
    private short ecl; //覆盖等级是指 NB 网络信号根据 RSRP 和 SNR 确定的 ECL 值
    private String basePci; //基站 PCI 编号是指基站物理小区标识编号
    private String imei; //NB 模组设备识别码是指存储在 NB 模组中的移动设备国际识别码，即 IMEI 码
    private String imsi; //USIM 卡识别码是指存储在 SIM 卡中的国际移动用户识别码，即 IMSI 码
    private int successCount; //累计上线成功次数
    private int failCount; //累计上线失败次数
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date dataTime;// 水表当前实时时间
    private String alarm; //告警信息
    private String status; //水表状态
    private short valveStatus;// 阀门状态
    private short batteryStatus; //电池状态
    private String hardwareVersion; //硬件版本号
    private String softwareVersion; //软件版本号

    public String getMeterNo() {
        return meterNo;
    }

    public void setMeterNo(String meterNo) {
        this.meterNo = meterNo;
    }

    public Date getFirstDataTime() {
        return firstDataTime;
    }

    public void setFirstDataTime(Date firstDataTime) {
        this.firstDataTime = firstDataTime;
    }

    public Short getInterval() {
        return interval;
    }

    public void setInterval(Short interval) {
        this.interval = interval;
    }

    public List<BigDecimal> getCumulantList() {
        return cumulantList;
    }

    public void setCumulantList(List<BigDecimal> cumulantList) {
        this.cumulantList = cumulantList;
    }

    public BigDecimal getCurrentCumulant() {
        return currentCumulant;
    }

    public void setCurrentCumulant(BigDecimal currentCumulant) {
        this.currentCumulant = currentCumulant;
    }

    public BigDecimal getInstantFlow() {
        return instantFlow;
    }

    public void setInstantFlow(BigDecimal instantFlow) {
        this.instantFlow = instantFlow;
    }

    public short getSensorSignalStrengthA() {
        return sensorSignalStrengthA;
    }

    public void setSensorSignalStrengthA(short sensorSignalStrengthA) {
        this.sensorSignalStrengthA = sensorSignalStrengthA;
    }

    public short getSensorSignalStrengthB() {
        return sensorSignalStrengthB;
    }

    public void setSensorSignalStrengthB(short sensorSignalStrengthB) {
        this.sensorSignalStrengthB = sensorSignalStrengthB;
    }

    public short getTemperature() {
        return temperature;
    }

    public void setTemperature(short temperature) {
        this.temperature = temperature;
    }

    public float getVoltage() {
        return voltage;
    }

    public void setVoltage(float voltage) {
        this.voltage = voltage;
    }

    public short getBaseCsq() {
        return baseCsq;
    }

    public void setBaseCsq(short baseCsq) {
        this.baseCsq = baseCsq;
    }

    public short getRsrp() {
        return rsrp;
    }

    public void setRsrp(short rsrp) {
        this.rsrp = rsrp;
    }

    public short getRsrq() {
        return rsrq;
    }

    public void setRsrq(short rsrq) {
        this.rsrq = rsrq;
    }

    public short getSnr() {
        return snr;
    }

    public void setSnr(short snr) {
        this.snr = snr;
    }

    public short getEcl() {
        return ecl;
    }

    public void setEcl(short ecl) {
        this.ecl = ecl;
    }

    public String getBasePci() {
        return basePci;
    }

    public void setBasePci(String basePci) {
        this.basePci = basePci;
    }

    public String getImei() {
        return imei;
    }

    public void setImei(String imei) {
        this.imei = imei;
    }

    public String getImsi() {
        return imsi;
    }

    public void setImsi(String imsi) {
        this.imsi = imsi;
    }

    public int getSuccessCount() {
        return successCount;
    }

    public void setSuccessCount(int successCount) {
        this.successCount = successCount;
    }

    public int getFailCount() {
        return failCount;
    }

    public void setFailCount(int failCount) {
        this.failCount = failCount;
    }

    public Date getDataTime() {
        return dataTime;
    }

    public void setDataTime(Date dataTime) {
        this.dataTime = dataTime;
    }

    public String getAlarm() {
        return alarm;
    }

    public void setAlarm(String alarm) {
        this.alarm = alarm;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public short getValveStatus() {
        return valveStatus;
    }

    public void setValveStatus(short valveStatus) {
        this.valveStatus = valveStatus;
    }

    public short getBatteryStatus() {
        return batteryStatus;
    }

    public void setBatteryStatus(short batteryStatus) {
        this.batteryStatus = batteryStatus;
    }

    public String getHardwareVersion() {
        return hardwareVersion;
    }

    public void setHardwareVersion(String hardwareVersion) {
        this.hardwareVersion = hardwareVersion;
    }

    public String getSoftwareVersion() {
        return softwareVersion;
    }

    public void setSoftwareVersion(String softwareVersion) {
        this.softwareVersion = softwareVersion;
    }
}
